/**
 * @description 与用户相关的网络请求，包含登录，注册等
 * @author 张文杰
 */
import request from './request'

/**
 * 判断用户名是否存在
 * @param {string} username 用户名
 */
export function isExist(username) {
  return request({
    url: '/isexist',
    params:{username}
  })
}

/**
 * 注册
 * @param {object} param0 用户名 param1 密码
 */
export function register({username, password}) {
  return request({
    url: '/register',
    method: 'POST',
    data: {username, password}
  })
}

/**
 * 登录
 * @param {object} param0 用户名 param1 密码
 */
export function login({username, password}) {
  return request({
    url: '/login',
    method: 'POST',
    data: {username, password}
  })
}

/**
 * 上传文件(头像，插图)
 * @param {object} formData 上传的文件对象
 */
export function upload(formData) {
  return request({
    url: '/upload',
    method: 'POST',
    data: formData
  })
}

/**
 * 刷新页面重新获取用户信息
 */
export function fresh() {
  return request({
    url: '/fresh'
  })
}

/**
 * 更新用户基本信息
 * @param {object} param0 需要更新的用户信息对象，包干id, 用户名等
 */
export function updateInfo({ id, username, city, gender, birthday, avatar }) {
  return request({
    url: '/updateinfo',
    method: 'PATCH',
    data: { id, username, city, gender, birthday, avatar }
  })
}

/**
 * 更新用户密码
 * @param {object} param0 用户id, 旧密码， 新密码
 */
export function updatePassword({id, password, newPassword}) {
  return request({
    url: '/updatepwd',
    method: 'PATCH',
    data: {id, password, newPassword}
  })
}

/**
 * 关注用户
 * @param {number | string} followId 被关注者ID
 */
export function followUser(followId) {
  return request({
    url: '/follow',
    method: 'POST',
    data: {followId}
  })
}

/**
 * 取消关注用户
 * @param {number | string} followId 被取消关注者ID
 */
export function unFollowUser(unFollowId) {
  return request({
    url: '/unfollow',
    method: 'POST',
    data: {unFollowId}
  })
}

/**
 * 通过用户ID获取用户信息
 * @param {number | string} userId 需要获取用户信息的用户ID
 */
export function getUserInfo(userId) {
  return request({
    url: '/userinfo',
    params: {userId}
  })
}

/**
 * 获取用户关注用户详情
 * @param {number | string} userId 目标用户ID
 */
export function getUserFollowDetail(userId) {
  return request({
    url: '/focuser',
    params: {userId}
  })
}

/**
 * 获取用户粉丝详情
 * @param {number | string} userId 目标用户ID
 */
export function getUserFansDetail(userId) {
  return request({
    url: '/fans',
    params: {userId}
  })
}

export function logout() {
  return request({
    url: '/logout'
  })
}